{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "06667ec3-68ed-4cad-ac9c-82526f18766c",
   "metadata": {},
   "source": [
    "# Black-Scholes options pricing\n",
    "\n",
    "The [Black-Scholes formula](https://en.wikipedia.org/wiki/Black%E2%80%93Scholes_model#Black%E2%80%93Scholes_formula) calculates prices for (European) put and call stock options. The inputs to this formula are:\n",
    "\n",
    "* $S$ is the current option price\n",
    "* $X$ is the strike price\n",
    "* $T$ is the time to expiration\n",
    "* $r$ is the continuously compounded risk free interest rate\n",
    "* $v$ is the implied volatility for the underlying stock\n",
    "\n",
    "<details>\n",
    "<summary>License</summary>\n",
    "<pre>\n",
    "\n",
    "Copyright 2023 NVIDIA Corporation\n",
    "\n",
    "Licensed under the Apache License, Version 2.0 (the \"License\");\n",
    "you may not use this file except in compliance with the License.\n",
    "You may obtain a copy of the License at\n",
    "\n",
    "     http://www.apache.org/licenses/LICENSE-2.0\n",
    "\n",
    "Unless required by applicable law or agreed to in writing, software\n",
    "distributed under the License is distributed on an \"AS IS\" BASIS,\n",
    "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
    "See the License for the specific language governing permissions and\n",
    "limitations under the License.\n",
    "</pre>\n",
    "</details>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5b787e94-e440-4e1c-bd66-29faf9b59041",
   "metadata": {},
   "source": [
    "To get started, `import cunumeric as np` (just the same way we would import `numpy`)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "597c89b9-6220-4360-82da-fb2aac8e70a5",
   "metadata": {},
   "outputs": [],
   "source": [
    "import cunumeric as np  # instead of numpy"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c8545c68-7ea0-4eeb-b290-e0643e2833b9",
   "metadata": {
    "tags": []
   },
   "source": [
    "The Cumulative Normal Distribution (CND) is defined as \n",
    "$$\n",
    "\\frac{1}{2\\pi}\\int_{-\\infty}^{x} e^{-t^2/2}\\; dt = \\frac12\\big[1 + \\mathtt{erf}\\big(\\frac{x}{\\sqrt{2}}\\big)\\big]\n",
    "$$\n",
    "\n",
    "In order to compute this efficiently, an expansion approximation (from John C. Hull (1997) “Options, Futures, and Other Derivatives”) is used."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b798400e-b726-46cf-83de-cbe0e613737f",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def CND(d):\n",
    "    # The expansion coefficients for erf are derived from Abramowitz and Stegun, eq 7.1.26 \n",
    "    # https://www.cs.bham.ac.uk/~aps/research/projects/as/resources/AandS-a4-v1-2.pdf\n",
    "    A1 = 0.31938153\n",
    "    A2 = -0.356563782\n",
    "    A3 = 1.781477937\n",
    "    A4 = -1.821255978\n",
    "    A5 = 1.330274429\n",
    "    RSQRT2PI = 0.39894228040143267793994605993438  # 1 / sqrt(2*pi)\n",
    "\n",
    "    K = 1.0 / (1.0 + 0.2316419 * np.abs(d))\n",
    "\n",
    "    cnd = RSQRT2PI * np.exp(-0.5*d*d) * (K*(A1 + K*(A2 + K*(A3 + K*(A4 + K*A5)))))\n",
    "\n",
    "    return np.where(d > 0, 1.0 - cnd, cnd)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8e4ae70e-30ac-47cf-949d-444695b5cacc",
   "metadata": {
    "tags": []
   },
   "source": [
    "Now that we have a method to compute the CND, we can implement the Black-Scholes formula below"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "fc601408-39db-4149-afd6-2866eab73f8f",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def black_scholes(S, X, T, r, v):\n",
    "    sqrt_T = np.sqrt(T)\n",
    "    \n",
    "    d1 = np.log(S / X) + (r + 0.5 * v * v) * T / (v * sqrt_T)\n",
    "    cnd_d1 = CND(d1)\n",
    "\n",
    "    d2 = d1 - v * sqrt_T\n",
    "    cnd_d2 = CND(d2)\n",
    "    \n",
    "    exp_rT = np.exp(-r * T)\n",
    "    \n",
    "    call_result = S * cnd_d1 - X * exp_rT * cnd_d2\n",
    "    put_result = X * exp_rT * (1.0 - cnd_d2) - S * (1.0 - cnd_d1)\n",
    "\n",
    "    return call_result, put_result"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "31b2da3e-1c67-4f07-a485-77320ec0210e",
   "metadata": {},
   "source": [
    "Let's use the `black_scholes` function above to price one million put and call options, keeping everying fixed except the current option price $S$. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c2247689-beff-4300-8266-199999d4f415",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Because of Legate's deferred execution model, legate.timing should be used instead\n",
    "# of standard Python datetime utilities. Python datetime.now would return the time\n",
    "# a task is *scheduled*, not necessarily the time a task finishes executing.\n",
    "from legate.timing import time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "7b11c011-086b-482f-9aa2-fdc60fc8cce0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/bryan/work/legate.core/legate/core/context.py:280: RuntimeWarning: cuNumeric has not implemented numpy.result_type and is falling back to canonical numpy. You may notice significantly decreased performance for this function call.\n",
      "  result = func(*args, **kwargs)\n",
      "Elapsed Time: 45.659 ms\n"
     ]
    }
   ],
   "source": [
    "N = 1000000                 # number of options to price\n",
    "S = np.linspace(5, 100, N)  # current option price\n",
    "X = 100                     # strike price\n",
    "T = 10                      # time to expiration\n",
    "r = 0.05                    # continuously compounded risk free interest rate\n",
    "v = 0.3                     # implied volatility for the underlying stock\n",
    "\n",
    "start = time()\n",
    "call, put = black_scholes(S, X, T, r, v)\n",
    "stop = time()\n",
    "\n",
    "print(f\"Elapsed Time: {(stop - start) / 1000.0} ms\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "7269f52a-e621-40b4-9cc9-3c9d436a7f19",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.plot(S, call, label=\"call\")\n",
    "plt.plot(S, put, label=\"put\")\n",
    "plt.title(f\"Black-Scholes value vs option price, for {N} options\")\n",
    "plt.xlabel(\"Option price $S$\")\n",
    "plt.ylabel(\"Value\")\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d16172bd-6968-4cbf-8c0f-893856fcf441",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
